home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / programmer / 3965 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.9 KB

  1. Path: news.eunet.fi!fipnet!kone!jsaarinen
  2. Newsgroups: comp.sys.amiga.programmer
  3. X-NewsReader: IntuiNews 1.2b (31.7.94)
  4. From: "Jyrki Saarinen" <jsaarinen@kone.fipnet.fi>
  5. Date: Sun, 18 Feb 96 12:45:14 UT
  6. Comments: Illegal date header - new date added by quicknews
  7. X-Original-Date: Sun, 18 Feb 96 13:43:56 
  8. MIME-Version: 1.0
  9. Content-Type: text/plain; charset=iso-8859-1
  10. Content-Transfer-Encoding: binary
  11. Subject: Texture/Gouraud innerloop speedtests
  12. Message-ID: <38232464@kone.fipnet.fi>
  13.  
  14.  
  15. Ok, I did a little research. My CPU is a 40MHz 68040,
  16. a Warp Engine with a very fast memory system, maybe
  17. this is the reason I did not gain any speed even if
  18. I turned the data cache and thus data burst off,
  19. with data burst everything was about 50% slower.
  20.  
  21. Here is the Texture/Gouraud/Shading table innerloop,
  22. properly pipelined. The result is 18.81 ms drawing
  23. 65536 pixels. This one uses 64k aligned shading table
  24. and texture. As an interesting note, the fastest plain
  25. mapping loop drew those 65536 pixels in ~12 ms.
  26.  
  27. So the frame rates were for a 320x256 screen:
  28. Texture/Gouraud/Shading table, 64k aligned: ~43 fps
  29. Plain Texture, 64k aligned: ~67 fps
  30.  
  31. poly    REPT    16
  32.     move.w    d3,d0
  33.     move.w    a1,d1
  34.     move.b    d4,d0
  35.     addx.l    d5,d3
  36.     move.l    d0,a3
  37.     addx.l    d6,d4
  38.     move.b    (a3),d1
  39.     move.l    d1,a3
  40.     add.l    a2,a1
  41.     move.b    (a3),(a0)+
  42.     ENDR
  43.     dbf    d7,poly
  44.     rts
  45.  
  46. The places were schedeling was most effective were the
  47.         move.l  d0,a3
  48.         <something here is a must>
  49.         move.b  (a3),d1
  50.         <or>
  51.         move.b  (a3),(a0)+
  52.  
  53. Now, the "normal version" took 23.94 ms to draw the same
  54. 65536 pixels. Quite a big difference to me.. 
  55. I tried to schedule it, but nothing could change the
  56. 23.94 ms result!
  57.  
  58. poly    REPT    16
  59.     move.l    d3,d0
  60.     move.b    d4,d0
  61.     move.l    a1,d1
  62.     move.b    (a3,d0.l),d1
  63.     move.b    (a4,d1.l),(a0)+
  64.     addx.l    d5,d3
  65.     addx.l    d6,d4
  66.     add.l    a2,a1
  67.     ENDR
  68.     dbf    d7,poly
  69.     rts
  70.  
  71. --                               _
  72. a Stellar programmer          _ //
  73. "Amiga - back for the future" \X/
  74.